// 这一节学完了可以自己试着写前端接口

var http = require('http')

// 1. 创建 Server
var server = http.createServer()

// 2. 监听request 请求事件，设置请求处理函数
server.on('request', function (request, response) {
    console.log('收到请求了，请求路径是:' + request.url)
    console.log('请求我的客户端的端口号是:', request.socket.remotePort)
    console.log('请求我的客户端的地址是:', request.socket.remoteAddress)

    // response.write('hello')
    // response.write('world')
    // response.end()

    // 上面的方式比较麻烦,推荐使用更简单的方式,直接end的同时发送响应数据

    // response.end('hello world') // 这种就是最方便的了

    // 根据不同的请求路径发送不同的响应结果
    // 1.获取请求路径 url获取到的是端口号之后的那一部分路径，也就是说所有的url都是以 / 开头的
    // 2.判断路径处理响应

    var url = request.url
    if (url === '/') {
        response.end('index page')
    } else if (url === '/login') {
        response.end('login page')
    } else if (url === '/products') {
        var products = {
            data: {
                list: [
                    {
                        id: 1,
                        name: 'appple',
                        price: 5000
                    },
                    {
                        id: 2,
                        name: 'huawei',
                        price: 15000
                    }
                ]
            }
        }
        response.setHeader('Content-Type', 'application/json;charset=utf-8')

        const a = JSON.stringify(products)
        const b = JSON.parse(a)
        console.log('b的值是:',b)
        response.end(a)
        // response.end(products) // 不进行JSON.stringify解析的话就读不出来  报错
    } else {
        response.end('404 Not found')
    }

    // 响应内容只能是【二进制数据】或者【字符串】
    // 数字
    // 对象
    // 数组
    // 布尔值

    // JSON.stringify 转字符串     JSON.parce 转数组

    // if (url === '/products') {
    //     response.end(JSON.stringify(products))  
    // }
})
// 3. 绑定端口号，启动服务
server.listen('9000', function () {
    console.log('服务器启动成功，可以访问了...')
})
